import "vue-router";

export type CustomRouteMeta = {
    affix?: boolean;            // 标签是否置顶
    keepAlive?: boolean;        // 是否缓存页面
    hideInMenu?: boolean;       // 是否在菜单中隐藏
    hideInBreadcrumb?: boolean; // 是否在面包屑中隐藏
    hideInTag?: boolean;        // 是否在标签中隐藏
    auth?: boolean;             // 是否开启权限控制
    link?: boolean;             // 是否为外链
    title: string;              // 页面标题
    icon?: string;              // 页面图标
};
export type CustomRouteRaw = {
    meta?: CustomRouteMeta;
    name?: string;               // 路由名称
    path?: string;               // 页面路由
    link?: string;               // 外链地址
    redirect?: string;           // 默认重定向地址
    children?: CustomRouteRaw[]; // 子页面配置
    component?: string;          // 组件
};
export type CustomRouteNormallized = {
    meta: CustomRouteMeta;
    name: string;                         // 路由名称
    path: string;                         // 页面路由
    link?: string;                        // 外链地址
    redirect?: string;                    // 默认重定向地址
    children?: CustomRouteNormallized[];  // 子页面配置
    component?: string;                   // 组件
};

declare module "vue-router" {
    interface RouteMeta extends CustomRouteMeta {
        breadcrumb: RouteLocationNormalizedLoaded[];
    }
}
